<?php
/**
 * 	PHP CLOUND LIBRARY
 *	Lop xu ly du lieu xml
 *****************************************************
 */
//Lop xu ly du lieu xml
require_once 'Clound/Xml/XmlClound.php';
//Lop tao doi tuong tren form
require_once 'Clound/Xml/GenerateObject.php';

class Clound_Xml extends Clound_Xml_XmlClound
{
    /**
     * Lop xu ly tao doi tuonf tren form
     */
	private $_generateClass = 'Clound_Xml_GenerateObject';
    private $_str_html;
    /**
	 * 	$xml				: 	dữ liệu xml, có thể là đường dẫn, có thể là chuỗi xml
	 *	$arr_input			:	Mảng dữ liệu đầu vào
	 *	$section			:	Tab xml bắt đầu lấy dữ liệu
	 *	$options			:	
     */
    public function __construct($xml = null, $arr_input = null, $xml_data_col_name = null, $section = null, $options = false)
    {	
		$this->_xml = $xml;
		$this->_section = $section;
		$this->_options = $options;	
		$this->_load_xml();
		$this->_load_input($arr_input,$xml_data_col_name);
	}
	/*************************************************************************************************
	*-------------------------------------------------------------------------------------------------	
	*		INPUT
	*		Các hàm set các dữ liệu đầu vào
	*/
	/*
	*	Load file xml
	*
	*
	*/
	public function load_xml($xml, $section = null, $options = false)
    {
		if(!$this->_load_xml($xml,$section,$options)){
			echo 'Chưa truyền xml!';//exit;
		}
    }
	/*
	*	Load mảng dữ liệu đầu vào
	*
	*
	*/
	public function load_input($arr_input,$xml_data_col_name)
    {
		if(!$this->_load_input($arr_input,$xml_data_col_name)){
			echo 'Lỗi!';//exit;
		}	
    }	
	/*
	*	Load xml mô tả cấu trúc formfield 
	*
	*
	*/
	public function load_formfield_struct($xml)
    {
		return true;
    }	
	/*
	*	Load xml mô tả formfield
	*
	*
	*/
	public function load_formfield_obj($xml)
    {
		return true;
    }	
	/*
	*	Load xml mô tả Filter
	*
	*
	*/
	public function load_Filter_struct($xml)
    {
		return true;
    }	
	/*
	*	Load xml mô tả Filter
	*
	*
	*/
	public function load_Filter_obj($xml)
    {
		return true;
    }	
	/*
	*	Load xml mô tả màn hình danh sách báo cáo
	*
	*
	*/
	public function load_list_object($xml)
    {
		return true;
    }	
	/*************************************************************************************************
	*-------------------------------------------------------------------------------------------------	
	*		OUTPUT
	*		Các hàm lấy dữ liệu đầu ra
	*/	
	/************************************************************************************************
	*		Lấy mảng mô tả các cột trên màn hình danh sách
	*/
	public function get_list_col()
    {
		return $this->_get_list_col();	
    }
	/**
	*		Lấy dữ liệu trong một thẻ xml
	* 		+ $spXmlString: Chuoi XML trong CSDL
	* 		+ $spXmlParentTag: ten the XML CHA  - xac dinh nhanh can lay thong tin(phai la the cap 1 sau the root- mac dinh = 'data_list')
	* 		+ $spXmlTag: ten the XML can lay gia tri
	*
	*/
    public function _xmlGetXmlTagValue($spXmlString, $spXmlParentTag, $spXmlTag)
    {
		
    }	
	public function _xmlGenerateFormfield()
	{
	
	}
	function _replaceTagXmlValueInString()
	{
	
	}
	public function _xmlGenerateXmlDataString ($psXmlTagList, $psValueList)
	{
	
	}
	/**
	*	Generate tiêu thức lọc của màn hình danh sách
	*
	*
	*/
    public function filterGenerate()
    {
		if(!isset($this->_xml)){
			return false;
		}	
		if(!isset($this->_filter_struct)){
			$this->_load_filter_struct();
		}	
		if(!isset($this->_filter_object)){
			$this->_load_filter_object();
		}	
        $generateClass = $this->_generateClass;
        if (!class_exists($generateClass)) {
            require_once 'Zend/Loader.php';
            Zend_Loader::loadClass($generateClass);
        }
        $formObj = new $generateClass();
        return $formObj->_formfieldGenerate($this->_filter_struct,$this->_filter_object);
    }
	/**
	*	Generate formfield
	*
	*
	*/
    public function formfieldGenerate()
    {
		if(!isset($this->_xml)){
			return false;
		}	
		if(!isset($this->_formfield_struct)){
			$this->_load_formfield_struct();
		}	
		if(!isset($this->_formfield_object)){
			$this->_load_formfield_object();
		}	
		if(!isset($this->_updateform_option)){
			$this->_load_updateform_option();
		}		
        $generateClass = $this->_generateClass;
        if (!class_exists($generateClass)) {
            require_once 'Zend/Loader.php';
            Zend_Loader::loadClass($generateClass);
        }
        $formObj = new $generateClass();
        return $formObj->_formfieldGenerate($this->_formfield_struct,$this->_formfield_object,$this->_updateform_option,$this->_arrInput,$this->_xml_data);
    }	
}
